+2009-01-15 Diego Escalante Urrelo <diegoe@gnome.org>
+
+ Bug 562701 – GtkEntryCompletion popup sizes its rows wrong
+ when they span for more than one line.
+
+ Don't assume actions and results have equal height, this causes
+ negative size requisitions when results are more than one
+ line tall.
+
+ * gtk/gtkentrycompletion.c: change the formula used to calculate
+ the size of the completion popup.
+
2009-01-14 Federico Mena Quintero <federico@novell.com>
Remember the file chooser's geometry across invocations.
GtkTreePath *path;
gboolean above;
gint width;
+ GtkTreeViewColumn *action_column;
+ gint action_height;
if (!completion->priv->entry->window)
return FALSE;
matches = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->filter_model), NULL);
actions = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (completion->priv->actions), NULL);
+ action_column = gtk_tree_view_get_column (GTK_TREE_VIEW (completion->priv->action_view), 0);
gtk_tree_view_column_cell_get_size (completion->priv->column, NULL,
NULL, NULL, NULL, &height);
+ gtk_tree_view_column_cell_get_size (action_column, NULL,
+ NULL, NULL, NULL, &action_height);
gtk_widget_style_get (GTK_WIDGET (completion->priv->tree_view),
"vertical-separator", &vertical_separator,
if (y > monitor.height / 2)
- items = MIN (matches, (monitor.y + y) / height - actions);
+ items = MIN (matches, (((monitor.y + y) - (actions * action_height)) / height) - 1);
else
- items = MIN (matches, (monitor.height - y) / height - 1 - actions);
+ items = MIN (matches, (((monitor.height - y) - (actions * action_height)) / height) - 1);
if (items <= 0)
gtk_widget_hide (completion->priv->scrolled_window);